import platform

from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
import os
class Application( Flask ):
    def __init__(self,import_name,template_folder=None,root_path=None):
        super( Application,self ).__init__( import_name,template_folder=template_folder,root_path=root_path,static_folder=None )
        self.config.from_pyfile( 'config/base_setting.py' ) #不管本地还是线上都需要的配置
        # 方式一: 判断 ops_config属性是否在 当前操作系统的环境变量中
        # if "ops_config" in os.environ: #ops_config选择 local或者production
        #     self.config.from_pyfile( 'config/%s_setting.py'%os.environ['ops_config'] )
        # else:  # 默认运行用线下模型(本地模式、开发模式)
        #     self.config.from_pyfile('config/local_setting.py')

        # 方式二 依据操作系统的类型 来决定加载的方式
        # print("当前的操作系统：",platform.system())
        if platform.system().lower() == "windows":
            self.config.from_pyfile('config/local_setting.py')
        elif platform.system().lower() == "linux":
            self.config.from_pyfile('config/production_setting.py')
        else:
            self.config.from_pyfile('config/local_setting.py')
        db.init_app( self )

db = SQLAlchemy()

import os
template_folder=os.getcwd() + "/web/templates/"
print('template_folder:',template_folder)
app = Application( __name__,template_folder=template_folder,root_path=os.getcwd() )
manager = Manager( app )

"""
函数模板
"""
from common.libs.UrlManager import UrlManager
app.add_template_global(UrlManager.buildStaticUrl,"buildStaticUrl")
app.add_template_global(UrlManager.buildUrl,"buildUrl")
app.add_template_global(UrlManager.buildImageUrl, 'buildImageUrl')


